/*
    ** 页面后端数据处理业务示例
    ** 这里展示rdbStoreServer五个接口的调用实例
 */

export class exampleClass { //---在主界面调用数据库
    rdbStore
    constructor(rdbStore) {
        this.rdbStore=rdbStore
    }

    query(cb) { //---查询所有值
        let self = this
        this.rdbStore.queryValue('NOTES', (resultSet) => { //查找操作与查询操作不同但对结果集处理相同
            self.resultSetServer(resultSet, (contactList) => { //---处理结果集
                cb(contactList) //---结果解析后放入contactList回调
            })
        })
    }

    update(obj, id, cb) { //---更新
        this.rdbStore.updateValue(obj, 'NOTES', 'ID', id)
        cb()
    }

    insert(obj, cb) { //---插入
        //        let obj = { //--- 例：一行数据格式示例
        //            title:'111',
        //            content:'222'
        //        }
        this.rdbStore.insertValue('NOTES', obj) //---按顺序插入一行数据（ID自动自增）
        cb()
    }

    deleteVal(cb) { //---删除
        this.rdbStore.deleteValue('NOTES', 'ID', 1) //--- 例：删除ID为1的那一行数据
        cb()
    }

    search(cb) { //---查询特定值
        var self = this
        this.rdbStore.searchValue('NOTES', 'TITLE', 'title_example', (resultSet) => { //--- 例：查询TILTLE名为title_example的那一行数据
            self.resultSetServer(resultSet, (contactList) => { //---处理结果集
                cb(contactList)
            })

        })
    }

    resultSetServer(resultSet, cb) { //--- 例：结果集resultSet的处理函数
        let contactList = []
        if (resultSet.rowCount > 0) { //--- rowCount为resultSet包含的行数
            while (resultSet.goToNextRow()) { //--- 不断读取下一行数据直至读完
                let id = resultSet.getLong(resultSet.getColumnIndex("ID")); //--- ID为整型，使用getLong获取
                let title = resultSet.getString(resultSet.getColumnIndex("TITLE")); //--- TITLE为文本型，使用getString获取
                let content = resultSet.getString(resultSet.getColumnIndex("CONTENT")); //--- CONTENT为文本型，使用getString获取
                let obj = {
                    id: id,
                    title: title,
                    content: content
                };
                contactList.push(obj);
            }
            if (contactList.length > 0) {
                console.info('xxx--- query suc length = ' + contactList.length)
            }
        } else {
            console.info('xxx--- query empty')
        }
        resultSet.close(); //---记得关闭结果集
        resultSet = null;
        cb(contactList)
    }
}




